package com.yixun.qfbao.util;

import com.yixun.qfbao.xf.model.dto.CityGroupDto;
import com.yixun.qfbao.xf.model.dto.PremisesCityDto;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 对城市首字母分组
 * 
 * @author liushihao
 *
 */
public class CityGroupUtils {
	static String arr[] = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
			"S", "T", "U", "V", "W", "X", "Y", "Z" };

	public static List<CityGroupDto> getCityGroup(List<PremisesCityDto> list) {
		Map<String, List<PremisesCityDto>> map = new HashMap<String, List<PremisesCityDto>>();
		for (int i = 0; i < arr.length; i++) {
			map.put(arr[i], new ArrayList<PremisesCityDto>());
		}
		if (list != null && !list.isEmpty()) {
			list.stream().filter(l -> !StringUtils.isEmpty(l.getPinyin())).forEach(e -> {
				String pinyin = e.getPinyin().substring(0, 1).toUpperCase();
				if (map.containsKey(pinyin)) {
					map.get(pinyin).add(e);
				}

			});
			List<CityGroupDto> groupCity = new ArrayList<CityGroupDto>();
			map.forEach((key, value) -> {
				if (value != null) {
					List<PremisesCityDto> l = value;
					if (!l.isEmpty()) {
						CityGroupDto DTO = new CityGroupDto(key, value);
						groupCity.add(DTO);
					}
				}
			});
			return groupCity;
		}
		return new ArrayList<CityGroupDto>();
	}
}
